package edu.hunau.cxb19.basic.class08;

/**
 *
 * @author hb
 *
 *         2020-02-18 14:45:36
 */
public class ArrayEx {
	public static void main(String[] args) {
//		int[][] arry = yHui(10);
//		print(arry);
		print(random02());

	}

	/**
	 * 获得6个随机整数
	 * 
	 * @return
	 */
	public static int[] random02() {
		// 获得[1,33]的随机数
		int[] arr = new int[6];
		// 定义boolean数组进行标记
		boolean[] flags = new boolean[33];
		for (int i = 0; i < arr.length; i++) {
			int r = (int) Math.floor(Math.random() * 33) + 1;// [1,33]
			// 判定该数据是否出现过
			if (flags[r - 1]) {// 说明数据r出现过
				System.out.println("出现重复数据");
				i--;
				continue;
			} else {
				arr[i] = r;
				flags[r - 1] = true;
			}

		}
		return arr;
	}

	/**
	 * 获得6个随机整数
	 * 
	 * @return
	 */
	public static int[] random() {
		// 获得[1,33]的随机数
		int[] arr = new int[6];
		for (int i = 0; i < arr.length; i++) {
			boolean flag = true;
			int r = (int) Math.floor(Math.random() * 7) + 1;// [1,33]
			// 表示已经存在数据的下标
			for (int j = 0; j < i; j++) {
				if (arr[j] == r) {// 表示已经出现重复数据
					System.out.println("发现重复数据");
					i--;
					flag = false;
					break;
				}
			}
			if (flag) {
				arr[i] = r;
			}
		}

		return arr;
	}

	public static void print(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
	}

	/**
	 * 输出一个二维数组的内容
	 * 
	 * @param arr
	 */
	public static void print(int[][] arr) {
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				System.out.print(arr[i][j] + "  ");
			}
			System.out.println();
		}
	}

	/**
	 * 提示
	 * 
	 * 1. 第1行1个数据，n行n个数据
	 * 
	 * 2. 每行第一个元素和最后一个元素都是1
	 * 
	 * 3.从第3行开始，对于非第一个元素和最后一元素。
	 * 
	 * 使用i表示行，j表示列 arr[i][j]=arr[i-1][j-1]+arr[i-1][j]
	 */
	public static int[][] yHui(int rows) {
		// 1. 声明并初始化一个二维数组
		int[][] arr = new int[rows][];

		// 2. 对数组中的数据进行赋值
		for (int i = 0; i < arr.length; i++) {// i表示行数
			// 构建底层的数组
			arr[i] = new int[i + 1];
			// 为每行的第一个元素赋值1
			arr[i][0] = 1;
			// 为每行的最后一个元素赋值1
			arr[i][i] = 1;
			// 对非第一个元素和最后一个元素进行计算
			for (int j = 1; j < arr[i].length - 1; j++) {
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
		}

		return arr;
	}

}
